<?php
/**
 * Gleez Locale Data
 *
 * Definition class for all Windows locales and locale constants.
 *
 * [!!] This code and ideas partly borrowed and partly adapted from
 *      [Zend Framework][ref-zend] 1.12. Please see Zend license: /licenses/Zend.txt
 *
 * [ref-zend]: http://framework.zend.com/
 *
 * @package    Gleez\Internationalization
 * @author     Sergey Yakovlev - Gleez
 * @version    1.0.1
 * @copyright  (c) 2011-2013 Gleez Technologies
 * @license    http://gleezcms.org/license  Gleez CMS License
 *
 * @link       http://msdn.microsoft.com/en-us/library/39cwe7zf.aspx MSDN: Language Strings
 * @link       http://msdn.microsoft.com/en-us/library/cdax410z.aspx MSDN: Country/Region Strings
 * @link       http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx MSDN: Locale IDs Assigned by Microsoft
 * @link       http://msdn.microsoft.com/en-us/goglobal/bb895996.aspx MSDN: Locale IDs, Input Locales, and Language Collections for Windows XP and Windows Server 2003
 * @link       http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_territory_information.html Language-Territory Information
 */
class Locale_Data {

	/**
	 * Locales for Full Named Locales
	 * @var array
	 */
	public static $languages = array(
		'Afrikaans'        => 'af',
		'Albanian'         => 'sq',
		'Amharic'          => 'am',
		'Arabic'           => 'ar',
		'Armenian'         => 'hy',
		'Assamese'         => 'as',
		'Azeri'            => 'az',
		'Azeri Latin'      => 'az_Latn',
		'Azeri Cyrillic'   => 'az_Cyrl',
		'Basque'           => 'eu',
		'Belarusian'       => 'be',
		'Bengali'          => 'bn',
		'Bengali Latin'    => 'bn_Latn',
		'Bosnian'          => 'bs',
		'Bulgarian'        => 'bg',
		'Burmese'          => 'my',
		'Catalan'          => 'ca',
		'Cherokee'         => 'chr',
		'Chinese'          => 'zh',
		'Croatian'         => 'hr',
		'Czech'            => 'cs',
		'Danish'           => 'da',
		'Divehi'           => 'dv',
		'Dutch'            => 'nl',
		'English'          => 'en',
		'Estonian'         => 'et',
		'Faroese'          => 'fo',
		'Faeroese'         => 'fo',
		'Farsi'            => 'fa',
		'Filipino'         => 'fil',
		'Finnish'          => 'fi',
		'French'           => 'fr',
		'Frisian'          => 'fy',
		'Macedonian'       => 'mk',
		'Gaelic'           => 'gd',
		'Galician'         => 'gl',
		'Georgian'         => 'ka',
		'German'           => 'de',
		'Greek'            => 'el',
		'Guarani'          => 'gn',
		'Gujarati'         => 'gu',
		'Hausa'            => 'ha',
		'Hawaiian'         => 'haw',
		'Hebrew'           => 'he',
		'Hindi'            => 'hi',
		'Hungarian'        => 'hu',
		'Icelandic'        => 'is',
		'Igbo'             => 'ig',
		'Indonesian'       => 'id',
		'Inuktitut'        => 'iu',
		'Italian'          => 'it',
		'Japanese'         => 'ja',
		'Kannada'          => 'kn',
		'Kanuri'           => 'kr',
		'Kashmiri'         => 'ks',
		'Kazakh'           => 'kk',
		'Khmer'            => 'km',
		'Konkani'          => 'kok',
		'Korean'           => 'ko',
		'Kyrgyz'           => 'ky',
		'Lao'              => 'lo',
		'Latin'            => 'la',
		'Latvian'          => 'lv',
		'Lithuanian'       => 'lt',
		'Macedonian'       => 'mk',
		'Malay'            => 'ms',
		'Malayalam'        => 'ml',
		'Maltese'          => 'mt',
		'Manipuri'         => 'mni',
		'Maori'            => 'mi',
		'Marathi'          => 'mr',
		'Mongolian'        => 'mn',
		'Nepali'           => 'ne',
		'Norwegian'        => 'no',
		'Norwegian Bokmal' => 'nb',
		'Norwegian Nynorsk'=> 'nn',
		'Oriya'            => 'or',
		'Oromo'            => 'om',
		'Papiamentu'       => 'pap',
		'Pashto'           => 'ps',
		'Polish'           => 'pl',
		'Portuguese'       => 'pt',
		'Punjabi'          => 'pa',
		'Quecha'           => 'qu',
		'Quechua'          => 'qu',
		'Rhaeto-Romanic'   => 'rm',
		'Romanian'         => 'ro',
		'Russian'          => 'ru',
		'Sami'             => 'smi',
		'Sami Inari'       => 'smn',
		'Sami Lule'        => 'smj',
		'Sami Northern'    => 'se',
		'Sami Skolt'       => 'sms',
		'Sami Southern'    => 'sma',
		'Sanskrit'         => 'sa',
		'Serbian'          => 'sr',
		'Serbian Latin'    => 'sr_Latn',
		'Serbian Cyrillic' => 'sr_Cyrl',
		'Sindhi'           => 'sd',
		'Sinhalese'        => 'si',
		'Slovak'           => 'sk',
		'Slovenian'        => 'sl',
		'Somali'           => 'so',
		'Sorbian'          => 'wen',
		'Spanish'          => 'es',
		'Swahili'          => 'sw',
		'Swedish'          => 'sv',
		'Syriac'           => 'syr',
		'Tajik'            => 'tg',
		'Tamazight'        => 'tmh',
		'Tamil'            => 'ta',
		'Tatar'            => 'tt',
		'Telugu'           => 'te',
		'Thai'             => 'th',
		'Tibetan'          => 'bo',
		'Tigrigna'         => 'ti',
		'Tsonga'           => 'ts',
		'Tswana'           => 'tn',
		'Turkish'          => 'tr',
		'Turkmen'          => 'tk',
		'Uighur'           => 'ug',
		'Ukrainian'        => 'uk',
		'Urdu'             => 'ur',
		'Uzbek'            => 'uz',
		'Uzbek Latin'      => 'uz_Latn',
		'Uzbek Cyrillic'   => 'uz_Cyrl',
		'Venda'            => 've',
		'Vietnamese'       => 'vi',
		'Welsh'            => 'cy',
		'Xhosa'            => 'xh',
		'Yiddish'          => 'yi',
		'Yoruba'           => 'yo',
		'Zulu'             => 'zu'
	);

	/**
	 * Regions for Full Named Locales
	 * @var array
	 */
	public static $regions = array(
		'Albania'                    => 'AL',
		'Algeria'                    => 'DZ',
		'Argentina'                  => 'AR',
		'Armenia'                    => 'AM',
		'Australia'                  => 'AU',
		'Austria'                    => 'AT',
		'Bahrain'                    => 'BH',
		'Bangladesh'                 => 'BD',
		'Belgium'                    => 'BE',
		'Belize'                     => 'BZ',
		'Bhutan'                     => 'BT',
		'Bolivia'                    => 'BO',
		'Bosnia Herzegovina'         => 'BA',
		'Brazil'                     => 'BR',
		'Brazilian'                  => 'BR',
		'Brunei Darussalam'          => 'BN',
		'Cameroon'                   => 'CM',
		'Canada'                     => 'CA',
		'Chile'                      => 'CL',
		'China'                      => 'CN',
		'Colombia'                   => 'CO',
		'Costa Rica'                 => 'CR',
		"Cote d'Ivoire"              => 'CI',
		'Czech Republic'             => 'CZ',
		'Dominican Republic'         => 'DO',
		'Denmark'                    => 'DK',
		'Ecuador'                    => 'EC',
		'Egypt'                      => 'EG',
		'El Salvador'                => 'SV',
		'Eritrea'                    => 'ER',
		'Ethiopia'                   => 'ET',
		'Finland'                    => 'FI',
		'France'                     => 'FR',
		'Germany'                    => 'DE',
		'Greece'                     => 'GR',
		'Guatemala'                  => 'GT',
		'Haiti'                      => 'HT',
		'Honduras'                   => 'HN',
		'Hong Kong'                  => 'HK',
		'Hong Kong SAR'              => 'HK',
		'Hungary'                    => 'HU',
		'Iceland'                    => 'IS',
		'India'                      => 'IN',
		'Indonesia'                  => 'ID',
		'Iran'                       => 'IR',
		'Iraq'                       => 'IQ',
		'Ireland'                    => 'IE',
		'Italy'                      => 'IT',
		'Jamaica'                    => 'JM',
		'Japan'                      => 'JP',
		'Jordan'                     => 'JO',
		'Korea'                      => 'KR',
		'Kuwait'                     => 'KW',
		'Lebanon'                    => 'LB',
		'Libya'                      => 'LY',
		'Liechtenstein'              => 'LI',
		'Luxembourg'                 => 'LU',
		'Macau'                      => 'MO',
		'Macao SAR'                  => 'MO',
		'Malaysia'                   => 'MY',
		'Mali'                       => 'ML',
		'Mexico'                     => 'MX',
		'Moldava'                    => 'MD',
		'Monaco'                     => 'MC',
		'Morocco'                    => 'MA',
		'Netherlands'                => 'NL',
		'New Zealand'                => 'NZ',
		'Nicaragua'                  => 'NI',
		'Nigeria'                    => 'NG',
		'Norway'                     => 'NO',
		'Oman'                       => 'OM',
		'Pakistan'                   => 'PK',
		'Panama'                     => 'PA',
		'Paraguay'                   => 'PY',
		"People's Republic of China" => 'CN',
		'Peru'                       => 'PE',
		'Philippines'                => 'PH',
		'Poland'                     => 'PL',
		'Portugal'                   => 'PT',
		'PRC'                        => 'CN',
		'Puerto Rico'                => 'PR',
		'Qatar'                      => 'QA',
		'Reunion'                    => 'RE',
		'Russia'                     => 'RU',
		'Saudi Arabia'               => 'SA',
		'Senegal'                    => 'SN',
		'Singapore'                  => 'SG',
		'Slovakia'                   => 'SK',
		'South Africa'               => 'ZA',
		'Spain'                      => 'ES',
		'Sri Lanka'                  => 'LK',
		'Sweden'                     => 'SE',
		'Switzerland'                => 'CH',
		'Syria'                      => 'SY',
		'Taiwan'                     => 'TW',
		'The Netherlands'            => 'NL',
		'Trinidad'                   => 'TT',
		'Tunisia'                    => 'TN',
		'UAE'                        => 'AE',
		'United Kingdom'             => 'GB',
		'United States'              => 'US',
		'Uruguay'                    => 'UY',
		'Venezuela'                  => 'VE',
		'Yemen'                      => 'YE',
		'Zimbabwe'                   => 'ZW'
	);

	/**
	 * Class wide Locale Constants
	 * @var array
	 */
	protected static $_locale_data = array(
		'root'  => TRUE, 'aa_DJ' => TRUE, 'aa_ER' => TRUE, 'aa_ET' => TRUE, 'aa'    => TRUE,
		'af_NA' => TRUE, 'af_ZA' => TRUE, 'af'    => TRUE, 'ak_GH' => TRUE, 'ak'    => TRUE,
		'am_ET' => TRUE, 'am'    => TRUE, 'ar_AE' => TRUE, 'ar_BH' => TRUE, 'ar_DZ' => TRUE,
		'ar_EG' => TRUE, 'ar_IQ' => TRUE, 'ar_JO' => TRUE, 'ar_KW' => TRUE, 'ar_LB' => TRUE,
		'ar_LY' => TRUE, 'ar_MA' => TRUE, 'ar_OM' => TRUE, 'ar_QA' => TRUE, 'ar_SA' => TRUE,
		'ar_SD' => TRUE, 'ar_SY' => TRUE, 'ar_TN' => TRUE, 'ar_YE' => TRUE, 'ar'    => TRUE,
		'as_IN' => TRUE, 'as'    => TRUE, 'az_AZ' => TRUE, 'az'    => TRUE, 'be_BY' => TRUE,
		'be'    => TRUE, 'bg_BG' => TRUE, 'bg'    => TRUE, 'bn_BD' => TRUE, 'bn_IN' => TRUE,
		'bn'    => TRUE, 'bo_CN' => TRUE, 'bo_IN' => TRUE, 'bo'    => TRUE, 'bs_BA' => TRUE,
		'bs'    => TRUE, 'byn_ER'=> TRUE, 'byn'   => TRUE, 'ca_ES' => TRUE, 'ca'    => TRUE,
		'cch_NG'=> TRUE, 'cch'   => TRUE, 'cop'   => TRUE, 'cs_CZ' => TRUE, 'cs'    => TRUE,
		'cy_GB' => TRUE, 'cy'    => TRUE, 'da_DK' => TRUE, 'da'    => TRUE, 'de_AT' => TRUE,
		'de_BE' => TRUE, 'de_CH' => TRUE, 'de_DE' => TRUE, 'de_LI' => TRUE, 'de_LU' => TRUE,
		'de'    => TRUE, 'dv_MV' => TRUE, 'dv'    => TRUE, 'dz_BT' => TRUE, 'dz'    => TRUE,
		'ee_GH' => TRUE, 'ee_TG' => TRUE, 'ee'    => TRUE, 'el_CY' => TRUE, 'el_GR' => TRUE,
		'el'    => TRUE, 'en_AS' => TRUE, 'en_AU' => TRUE, 'en_BE' => TRUE, 'en_BW' => TRUE,
		'en_BZ' => TRUE, 'en_CA' => TRUE, 'en_GB' => TRUE, 'en_GU' => TRUE, 'en_HK' => TRUE,
		'en_IE' => TRUE, 'en_IN' => TRUE, 'en_JM' => TRUE, 'en_MH' => TRUE, 'en_MP' => TRUE,
		'en_MT' => TRUE, 'en_NA' => TRUE, 'en_NZ' => TRUE, 'en_PH' => TRUE, 'en_PK' => TRUE,
		'en_SG' => TRUE, 'en_TT' => TRUE, 'en_UM' => TRUE, 'en_US' => TRUE, 'en_VI' => TRUE,
		'en_ZA' => TRUE, 'en_ZW' => TRUE, 'en'    => TRUE, 'eo'    => TRUE, 'es_AR' => TRUE,
		'es_BO' => TRUE, 'es_CL' => TRUE, 'es_CO' => TRUE, 'es_CR' => TRUE, 'es_DO' => TRUE,
		'es_EC' => TRUE, 'es_ES' => TRUE, 'es_GT' => TRUE, 'es_HN' => TRUE, 'es_MX' => TRUE,
		'es_NI' => TRUE, 'es_PA' => TRUE, 'es_PE' => TRUE, 'es_PR' => TRUE, 'es_PY' => TRUE,
		'es_SV' => TRUE, 'es_US' => TRUE, 'es_UY' => TRUE, 'es_VE' => TRUE, 'es'    => TRUE,
		'et_EE' => TRUE, 'et'    => TRUE, 'eu_ES' => TRUE, 'eu'    => TRUE, 'fa_AF' => TRUE,
		'fa_IR' => TRUE, 'fa'    => TRUE, 'fi_FI' => TRUE, 'fi'    => TRUE, 'fil_PH'=> TRUE,
		'fil'   => TRUE, 'fo_FO' => TRUE, 'fo'    => TRUE, 'fr_BE' => TRUE, 'fr_CA' => TRUE,
		'fr_CH' => TRUE, 'fr_FR' => TRUE, 'fr_LU' => TRUE, 'fr_MC' => TRUE, 'fr_SN' => TRUE,
		'fr'    => TRUE, 'fur_IT'=> TRUE, 'fur'   => TRUE, 'ga_IE' => TRUE, 'ga'    => TRUE,
		'gaa_GH'=> TRUE, 'gaa'   => TRUE, 'gez_ER'=> TRUE, 'gez_ET'=> TRUE, 'gez'   => TRUE,
		'gl_ES' => TRUE, 'gl'    => TRUE, 'gsw_CH'=> TRUE, 'gsw'   => TRUE, 'gu_IN' => TRUE,
		'gu'    => TRUE, 'gv_GB' => TRUE, 'gv'    => TRUE, 'ha_GH' => TRUE, 'ha_NE' => TRUE,
		'ha_NG' => TRUE, 'ha_SD' => TRUE, 'ha'    => TRUE, 'haw_US'=> TRUE, 'haw'   => TRUE,
		'he_IL' => TRUE, 'he'    => TRUE, 'hi_IN' => TRUE, 'hi'    => TRUE, 'hr_HR' => TRUE,
		'hr'    => TRUE, 'hu_HU' => TRUE, 'hu'    => TRUE, 'hy_AM' => TRUE, 'hy'    => TRUE,
		'ia'    => TRUE, 'id_ID' => TRUE, 'id'    => TRUE, 'ig_NG' => TRUE, 'ig'    => TRUE,
		'ii_CN' => TRUE, 'ii'    => TRUE, 'in'    => TRUE, 'is_IS' => TRUE, 'is'    => TRUE,
		'it_CH' => TRUE, 'it_IT' => TRUE, 'it'    => TRUE, 'iu'    => TRUE, 'iw'    => TRUE,
		'ja_JP' => TRUE, 'ja'    => TRUE, 'ka_GE' => TRUE, 'ka'    => TRUE, 'kaj_NG'=> TRUE,
		'kaj'   => TRUE, 'kam_KE'=> TRUE, 'kam'   => TRUE, 'kcg_NG'=> TRUE, 'kcg'   => TRUE,
		'kfo_CI'=> TRUE, 'kfo'   => TRUE, 'kk_KZ' => TRUE, 'kk'    => TRUE, 'kl_GL' => TRUE,
		'kl'    => TRUE, 'km_KH' => TRUE, 'km'    => TRUE, 'kn_IN' => TRUE, 'kn'    => TRUE,
		'ko_KR' => TRUE, 'ko'    => TRUE, 'kok_IN'=> TRUE, 'kok'   => TRUE, 'kpe_GN'=> TRUE,
		'kpe_LR'=> TRUE, 'kpe'   => TRUE, 'ku_IQ' => TRUE, 'ku_IR' => TRUE, 'ku_SY' => TRUE,
		'ku_TR' => TRUE, 'ku'    => TRUE, 'kw_GB' => TRUE, 'kw'    => TRUE, 'ky_KG' => TRUE,
		'ky'    => TRUE, 'ln_CD' => TRUE, 'ln_CG' => TRUE, 'ln'    => TRUE, 'lo_LA' => TRUE,
		'lo'    => TRUE, 'lt_LT' => TRUE, 'lt'    => TRUE, 'lv_LV' => TRUE, 'lv'    => TRUE,
		'mk_MK' => TRUE, 'mk'    => TRUE, 'ml_IN' => TRUE, 'ml'    => TRUE, 'mn_CN' => TRUE,
		'mn_MN' => TRUE, 'mn'    => TRUE, 'mo'    => TRUE, 'mr_IN' => TRUE, 'mr'    => TRUE,
		'ms_BN' => TRUE, 'ms_MY' => TRUE, 'ms'    => TRUE, 'mt_MT' => TRUE, 'mt'    => TRUE,
		'my_MM' => TRUE, 'my'    => TRUE, 'nb_NO' => TRUE, 'nb'    => TRUE, 'nds_DE'=> TRUE,
		'nds'   => TRUE, 'ne_IN' => TRUE, 'ne_NP' => TRUE, 'ne'    => TRUE, 'nl_BE' => TRUE,
		'nl_NL' => TRUE, 'nl'    => TRUE, 'nn_NO' => TRUE, 'nn'    => TRUE, 'no'    => TRUE,
		'nr_ZA' => TRUE, 'nr'    => TRUE, 'nso_ZA'=> TRUE, 'nso'   => TRUE, 'ny_MW' => TRUE,
		'ny'    => TRUE, 'oc_FR' => TRUE, 'oc'    => TRUE, 'om_ET' => TRUE, 'om_KE' => TRUE,
		'om'    => TRUE, 'or_IN' => TRUE, 'or'    => TRUE, 'pa_IN' => TRUE, 'pa_PK' => TRUE,
		'pa'    => TRUE, 'pl_PL' => TRUE, 'pl'    => TRUE, 'ps_AF' => TRUE, 'ps'    => TRUE,
		'pt_BR' => TRUE, 'pt_PT' => TRUE, 'pt'    => TRUE, 'ro_MD' => TRUE, 'ro_RO' => TRUE,
		'ro'    => TRUE, 'ru_RU' => TRUE, 'ru_UA' => TRUE, 'ru'    => TRUE, 'rw_RW' => TRUE,
		'rw'    => TRUE, 'sa_IN' => TRUE, 'sa'    => TRUE, 'se_FI' => TRUE, 'se_NO' => TRUE,
		'se'    => TRUE, 'sh_BA' => TRUE, 'sh_CS' => TRUE, 'sh_YU' => TRUE, 'sh'    => TRUE,
		'si_LK' => TRUE, 'si'    => TRUE, 'sid_ET'=> TRUE, 'sid'   => TRUE, 'sk_SK' => TRUE,
		'sk'    => TRUE, 'sl_SI' => TRUE, 'sl'    => TRUE, 'so_DJ' => TRUE, 'so_ET' => TRUE,
		'so_KE' => TRUE, 'so_SO' => TRUE, 'so'    => TRUE, 'sq_AL' => TRUE, 'sq'    => TRUE,
		'sr_BA' => TRUE, 'sr_CS' => TRUE, 'sr_ME' => TRUE, 'sr_RS' => TRUE, 'sr_YU' => TRUE,
		'sr'    => TRUE, 'ss_SZ' => TRUE, 'ss_ZA' => TRUE, 'ss'    => TRUE, 'st_LS' => TRUE,
		'st_ZA' => TRUE, 'st'    => TRUE, 'sv_FI' => TRUE, 'sv_SE' => TRUE, 'sv'    => TRUE,
		'sw_KE' => TRUE, 'sw_TZ' => TRUE, 'sw'    => TRUE, 'syr_SY'=> TRUE, 'syr'   => TRUE,
		'ta_IN' => TRUE, 'ta'    => TRUE, 'te_IN' => TRUE, 'te'    => TRUE, 'tg_TJ' => TRUE,
		'tg'    => TRUE, 'th_TH' => TRUE, 'th'    => TRUE, 'ti_ER' => TRUE, 'ti_ET' => TRUE,
		'ti'    => TRUE, 'tig_ER'=> TRUE, 'tig'   => TRUE, 'tl'    => TRUE, 'tn_ZA' => TRUE,
		'tn'    => TRUE, 'to_TO' => TRUE, 'to'    => TRUE, 'tr_TR' => TRUE, 'tr'    => TRUE,
		'trv_TW'=> TRUE, 'trv'   => TRUE, 'ts_ZA' => TRUE, 'ts'    => TRUE, 'tt_RU' => TRUE,
		'tt'    => TRUE, 'ug_CN' => TRUE, 'ug'    => TRUE, 'uk_UA' => TRUE, 'uk'    => TRUE,
		'ur_IN' => TRUE, 'ur_PK' => TRUE, 'ur'    => TRUE, 'uz_AF' => TRUE, 'uz_UZ' => TRUE,
		'uz'    => TRUE, 've_ZA' => TRUE, 've'    => TRUE, 'vi_VN' => TRUE, 'vi'    => TRUE,
		'wal_ET'=> TRUE, 'wal'   => TRUE, 'wo_SN' => TRUE, 'wo'    => TRUE, 'xh_ZA' => TRUE,
		'xh'    => TRUE, 'yo_NG' => TRUE, 'yo'    => TRUE, 'zh_CN' => TRUE, 'zh_HK' => TRUE,
		'zh_MO' => TRUE, 'zh_SG' => TRUE, 'zh_TW' => TRUE, 'zh'    => TRUE, 'zu_ZA' => TRUE,
		'zu'    => TRUE
	);

	/**
	 * Class wide Locale Constants
	 * @var array $_territory_data
	 */
	protected static $_territory_data = array(
		'AD' => 'ca_AD', 'AE' => 'ar_AE', 'AF' => 'fa_AF', 'AG' => 'en_AG', 'AI' => 'en_AI',
		'AL' => 'sq_AL', 'AM' => 'hy_AM', 'AN' => 'pap_AN', 'AO' => 'pt_AO', 'AQ' => 'und_AQ',
		'AR' => 'es_AR', 'AS' => 'sm_AS', 'AT' => 'de_AT', 'AU' => 'en_AU', 'AW' => 'nl_AW',
		'AX' => 'sv_AX', 'AZ' => 'az_Latn_AZ', 'BA' => 'bs_BA', 'BB' => 'en_BB', 'BD' => 'bn_BD',
		'BE' => 'nl_BE', 'BF' => 'mos_BF', 'BG' => 'bg_BG', 'BH' => 'ar_BH', 'BI' => 'rn_BI',
		'BJ' => 'fr_BJ', 'BL' => 'fr_BL', 'BM' => 'en_BM', 'BN' => 'ms_BN', 'BO' => 'es_BO',
		'BR' => 'pt_BR', 'BS' => 'en_BS', 'BT' => 'dz_BT', 'BV' => 'und_BV', 'BW' => 'en_BW',
		'BY' => 'be_BY', 'BZ' => 'en_BZ', 'CA' => 'en_CA', 'CC' => 'ms_CC', 'CD' => 'sw_CD',
		'CF' => 'fr_CF', 'CG' => 'fr_CG', 'CH' => 'de_CH', 'CI' => 'fr_CI', 'CK' => 'en_CK',
		'CL' => 'es_CL', 'CM' => 'fr_CM', 'CN' => 'zh_Hans_CN', 'CO' => 'es_CO', 'CR' => 'es_CR',
		'CU' => 'es_CU', 'CV' => 'kea_CV', 'CX' => 'en_CX', 'CY' => 'el_CY', 'CZ' => 'cs_CZ',
		'DE' => 'de_DE', 'DJ' => 'aa_DJ', 'DK' => 'da_DK', 'DM' => 'en_DM', 'DO' => 'es_DO',
		'DZ' => 'ar_DZ', 'EC' => 'es_EC', 'EE' => 'et_EE', 'EG' => 'ar_EG', 'EH' => 'ar_EH',
		'ER' => 'ti_ER', 'ES' => 'es_ES', 'ET' => 'en_ET', 'FI' => 'fi_FI', 'FJ' => 'hi_FJ',
		'FK' => 'en_FK', 'FM' => 'chk_FM', 'FO' => 'fo_FO', 'FR' => 'fr_FR', 'GA' => 'fr_GA',
		'GB' => 'en_GB', 'GD' => 'en_GD', 'GE' => 'ka_GE', 'GF' => 'fr_GF', 'GG' => 'en_GG',
		'GH' => 'ak_GH', 'GI' => 'en_GI', 'GL' => 'iu_GL', 'GM' => 'en_GM', 'GN' => 'fr_GN',
		'GP' => 'fr_GP', 'GQ' => 'fan_GQ', 'GR' => 'el_GR', 'GS' => 'und_GS', 'GT' => 'es_GT',
		'GU' => 'en_GU', 'GW' => 'pt_GW', 'GY' => 'en_GY', 'HK' => 'zh_Hant_HK', 'HM' => 'und_HM',
		'HN' => 'es_HN', 'HR' => 'hr_HR', 'HT' => 'ht_HT', 'HU' => 'hu_HU', 'ID' => 'id_ID',
		'IE' => 'en_IE', 'IL' => 'he_IL', 'IM' => 'en_IM', 'IN' => 'hi_IN', 'IO' => 'und_IO',
		'IQ' => 'ar_IQ', 'IR' => 'fa_IR', 'IS' => 'is_IS', 'IT' => 'it_IT', 'JE' => 'en_JE',
		'JM' => 'en_JM', 'JO' => 'ar_JO', 'JP' => 'ja_JP', 'KE' => 'en_KE', 'KG' => 'ky_Cyrl_KG',
		'KH' => 'km_KH', 'KI' => 'en_KI', 'KM' => 'ar_KM', 'KN' => 'en_KN', 'KP' => 'ko_KP',
		'KR' => 'ko_KR', 'KW' => 'ar_KW', 'KY' => 'en_KY', 'KZ' => 'ru_KZ', 'LA' => 'lo_LA',
		'LB' => 'ar_LB', 'LC' => 'en_LC', 'LI' => 'de_LI', 'LK' => 'si_LK', 'LR' => 'en_LR',
		'LS' => 'st_LS', 'LT' => 'lt_LT', 'LU' => 'fr_LU', 'LV' => 'lv_LV', 'LY' => 'ar_LY',
		'MA' => 'ar_MA', 'MC' => 'fr_MC', 'MD' => 'ro_MD', 'ME' => 'sr_Latn_ME', 'MF' => 'fr_MF',
		'MG' => 'mg_MG', 'MH' => 'mh_MH', 'MK' => 'mk_MK', 'ML' => 'bm_ML', 'MM' => 'my_MM',
		'MN' => 'mn_Cyrl_MN', 'MO' => 'zh_Hant_MO', 'MP' => 'en_MP', 'MQ' => 'fr_MQ', 'MR' => 'ar_MR',
		'MS' => 'en_MS', 'MT' => 'mt_MT', 'MU' => 'mfe_MU', 'MV' => 'dv_MV', 'MW' => 'ny_MW',
		'MX' => 'es_MX', 'MY' => 'ms_MY', 'MZ' => 'pt_MZ', 'NA' => 'kj_NA', 'NC' => 'fr_NC',
		'NE' => 'ha_Latn_NE', 'NF' => 'en_NF', 'NG' => 'en_NG', 'NI' => 'es_NI', 'NL' => 'nl_NL',
		'NO' => 'nb_NO', 'NP' => 'ne_NP', 'NR' => 'en_NR', 'NU' => 'niu_NU', 'NZ' => 'en_NZ',
		'OM' => 'ar_OM', 'PA' => 'es_PA', 'PE' => 'es_PE', 'PF' => 'fr_PF', 'PG' => 'tpi_PG',
		'PH' => 'fil_PH', 'PK' => 'ur_PK', 'PL' => 'pl_PL', 'PM' => 'fr_PM', 'PN' => 'en_PN',
		'PR' => 'es_PR', 'PS' => 'ar_PS', 'PT' => 'pt_PT', 'PW' => 'pau_PW', 'PY' => 'gn_PY',
		'QA' => 'ar_QA', 'RE' => 'fr_RE', 'RO' => 'ro_RO', 'RS' => 'sr_Cyrl_RS', 'RU' => 'ru_RU',
		'RW' => 'rw_RW', 'SA' => 'ar_SA', 'SB' => 'en_SB', 'SC' => 'crs_SC', 'SD' => 'ar_SD',
		'SE' => 'sv_SE', 'SG' => 'en_SG', 'SH' => 'en_SH', 'SI' => 'sl_SI', 'SJ' => 'nb_SJ',
		'SK' => 'sk_SK', 'SL' => 'kri_SL', 'SM' => 'it_SM', 'SN' => 'fr_SN', 'SO' => 'sw_SO',
		'SR' => 'srn_SR', 'ST' => 'pt_ST', 'SV' => 'es_SV', 'SY' => 'ar_SY', 'SZ' => 'en_SZ',
		'TC' => 'en_TC', 'TD' => 'fr_TD', 'TF' => 'und_TF', 'TG' => 'fr_TG', 'TH' => 'th_TH',
		'TJ' => 'tg_Cyrl_TJ', 'TK' => 'tkl_TK', 'TL' => 'pt_TL', 'TM' => 'tk_TM', 'TN' => 'ar_TN',
		'TO' => 'to_TO', 'TR' => 'tr_TR', 'TT' => 'en_TT', 'TV' => 'tvl_TV', 'TW' => 'zh_Hant_TW',
		'TZ' => 'sw_TZ', 'UA' => 'uk_UA', 'UG' => 'sw_UG', 'UM' => 'en_UM', 'US' => 'en_US',
		'UY' => 'es_UY', 'UZ' => 'uz_Cyrl_UZ', 'VA' => 'it_VA', 'VC' => 'en_VC', 'VE' => 'es_VE',
		'VG' => 'en_VG', 'VI' => 'en_VI', 'VU' => 'bi_VU', 'WF' => 'wls_WF', 'WS' => 'sm_WS',
		'YE' => 'ar_YE', 'YT' => 'swb_YT', 'ZA' => 'en_ZA', 'ZM' => 'en_ZM', 'ZW' => 'sn_ZW'
	);

	/**
	 * Get Class wide locale constants
	 *
	 * @return array
	 */
	public static function getLocaleData()
	{
		return self::$_locale_data;
	}

	public static function getTerritoryData()
	{
		return self::$_territory_data;
	}
}